home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tiger Disk 13
/
Tiger_Disk_013_19xx_Tiger-Crew-Disk_de_Side_B.d64
/
lektion 7
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2023-02-26
|
7KB
|
176 lines
1 rem*********************************
2 rem*----------lektion-7------------*
3 rem*-------------------------------*
4 rem*----(w)-by-arno-freisinger-----*
5 rem*-------------------------------*
6 rem*--------teachmaster------------*
7 rem*-------------------------------*
8 rem*********************************
10 poke 53280 , 11 : poke 53281 , 11 : print "[155]" : poke 2050 , 1
15 sys 42291 : poke 46 , peek (35) : poke 45 , peek (781) + 2 : clr
20 print"[147]"tab(15)"teachmaster"
30 print""tab(09)"(w) by arno freisinger"
40 print""tab(10)" "
50 for i = 1 to 2000 : next
60 print"[147]"tab(15)"lektion 7"
70 for i = 1 to 1000 : next
80 get a$ : get a$ : get a$
85 rem*********************************
90 rem*-------- seite 1 --------------*
95 rem*********************************
100 print"[147]wir sind ja jetzt schon richtig weit."
110 print"da wir ja fast alle befehle durch haben"
120 print"wollen wir das wissen ueber die befehle"
130 print"in dieser lektion fast komplett machen."
140 print"da waere der befehl cmp[146]. ihn kann man"
150 print"einsetzen wie den basic befehl"
160 print"if..then... . der cmp-befehl vergleicht"
170 print"den akku-inhalt mit dem wert, der beim"
180 print"cmp-befehl angegeben wird.er lautet so :"
190 print"cmp #(wert) oder cmp (adresse).jetzt"
210 print""tab(14)"taste druecken"
220 print""tab(18)"-1-"
230 gosub 250
240 on a goto 295 , 60
247 rem********************************
248 rem*------- tasten abfrage -------*
249 rem********************************
250 get a$ : if a$ = "" then 250
260 if a$ = "z" then a = 2 : return
270 a = 1 : return
280 rem********************************
285 rem*-------- seite 2 -------------*
290 rem********************************
295 print"[147]eine tabelle, die die reaktionen ver-"
300 print"deutlichen soll:"
310 print"[213][195][195][195][195][195][195]flag[192][192][195]reaktionen[195]auf[195]cmp[195][195][195][195][195][195][201]"
320 print"[194] [194]"
330 print"[194] flag [194] daten > [194] daten = [194] daten < [194]
340 [153]"peekvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalpeek"
350 [153]"peekn-flag peek 1 oder 0peek 0 peek 1 oder 0peek"
360 [153]"peekvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalpeek"
370 [153]"peekz-flag peek 0 peek 1 peek 0 peek"
380 [153]"peekvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalvalpeek"
390 [153]"peekc-flag peek 1 peek 1 peek 0 peek"
400 [153]"peek peek"
410 [153]"mid$lenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlen(NULL)"
420 [153]"hier koennen sie sehen, wie das status-"
430 [153]"register eingestellt ist, wenn sie mit"
450 [153]""[163]14)"taste druecken"
460 [153]""[163]18)"-2-"
470 [141] 250 : [145] a [137] 480 , 100
480 [143]********************************
490 [143]*--------- seite 3 ------------*
495 [143]********************************
500 [153]"loadcmp verglichen haben. merken sie es sich"
510 [153]"gut, da es sehr wichtig ist. nun aber "
520 [153]"weiter : cpywait und cpxwait sind die ver-"
530 [153]"gleichsbefehle fuer das x & y register."
540 [153]"cpy vergleicht das y-register,"
550 [153]"cpx vergleicht das x-register."
560 [153]"die flags reagieren genauso, wie bei"
570 [153]"cmp. man kann dann die flags abfragen"
580 [153]"mit den befehlen, die wir in lektion 5"
590 [153]"gelernt haben. sie heissen bcc,bcs,beq,"
600 [153]""[163]14)"taste druecken"
610 [153]""[163]18)"-3-"
620 [141] 250 : [145] a [137] 640 , 295
630 [143]********************************
640 [143]*--------- seite 4 ------------*
650 [143]********************************
660 [153]"loadbmiwait und bnewait. sie wissen hoffentlich"
670 [153]"noch die befehle, der einzelnen flags."
680 [153]"jetzt ein paar beispiele :"
690 [153]" lda #$00 ;akku = 0"
700 [153]" cmp $1000 ;vergleichen mit speich."
710 [153]" ;$1000 (4096)."
720 [153]" beq loop ;falls=0 dann nach loop."
730 [153]" rts ;zurueck springen."
740 [153]"loop lda #65 ;asci-code fuer a laden"
750 [153]" jmp $ffd2 ;sprung nach chrout"
760 [153]"dies war das erste beispiel. es wird ein"
765 [153]"a ausgedruckt, wenn speichs.$1000 (4096)"
767 [153]"gleich null ist. jetzt ein neues"
770 [153]""[163]14)"taste druecken"
780 [153]""[163]18)"-4-"
790 [141] 250 : [145] a [137] 800 , 480
800 [143]********************************
810 [143]*---------- seite 5 -----------*
820 [143]********************************
830 [153]"loadbeispiel :"
840 [153]" ldx $02 ;in x-r. wert von 2 laden."
850 [153]" cpx #$02 ;vergleich mit zwei"
860 [153]" bcs loop ;wenn >= dann nach loop."
870 [153]" lda $10 ;wert von speicherst.$10"
880 [153]" ;(16) in den akku laden."
890 [153]" jmp $ffd2;sprung nach chrout"
900 [153]"loop lda #66 ;asc-ii-code fuer b laden"
910 [153]" jsr $ffd2;sprung zu chrout"
920 [153]" rts ;zurueck springen."
930 [153]"das programm druckt ein b aus, "
940 [153]""[163]14)"taste druecken"
950 [153]""[163]18)"-5-"
960 [141] 250 : [145] a [137] 990 , 640
970 [143]********************************
980 [143]*--------- seite 6 ------------*
990 [143]********************************
1000 [153]"loadwenn die speicherstelle 2 einen "
1010 [153]"groesseren wert als $02 (2) besitzt."
1030 [153]"wenn nicht wird der ascii-code von $10"
1040 [153]"(16) ausgedruckt ."
1070 [153]"nun weiter mit den neuen befehlen :"
1080 [153]"taxwait heisst der naechste. er uebergibt"
1090 [153]"den wert des akkus ins x-register, ohne"
1100 [153]"dass der akku veraendert wird."
1110 [153]""[163]14)"taste druecken"
1120 [153]""[163]18)"-6-"
1130 [141] 250 : [145] a [137] 1150 , 800
1150 [143]*******************************
1160 [143]*--------- seite 7 -----------*
1170 [143]*******************************
1180 [153]"loadtaywait uebergibt den wert des akkus an"
1190 [153]"das y-regtster. tsxwait uebergibt den"
1200 [153]"stapelzeiger (dazu gleich mehr) in das"
1210 [153]"x-register. txawait ist die umkehrung von"
1220 [153]"tax. txa uebergibt den wert des x-reg."
1230 [153]"in den akku. txswait ist das gegenteil"
1240 [153]"von tsx. txs uebergibt den x-reg. wert"
1250 [153]"an den stapelzeiger. d.h. der stapelz."
1260 [153]"hat den wert des x-reg., ohne dass der"
1270 [153]"wert des x-registers veraendert wird."
1280 [153]""[163]14)"taste druecken"
1290 [153]""[163]18)"-7-"
1300 [141] 250 : [145] a [137] 1320 , 980
1310 [143]*******************************
1320 [143]*---------- seite 8 ----------*
1330 [143]*******************************
1340 [153]"loadtyawait ist das gegenteil von tay. hier"
1350 [153]"wird der wert des y-registers in den"
1360 [153]"akku uebertragen, ohne dass der wert"
1370 [153]"des y-registers veraendert wird."
1380 [153]"dies war ja eine ganze menge an neuen"
1390 [153]"befehlen. sie lassen sich aber leicht"
1400 [153]"einpraegen, da sie keinerlei adress-"
1410 [153]"ierung besitzen. sie sind alle ein"
1420 [153]"byte lang. so haben wir es doch nicht"
1430 [153]"geschafft. es stehen noch ein paar be-"
1440 [153]""[163]14)"taste druecken"
1450 [153]""[163]18)"-8-"
1460 [141] 250 : [145] a [137] 1480 , 1150
1470 [143]*******************************
1480 [143]*---------- seite 9 ----------*
1490 [143]*******************************
1500 [153]"loadfehle offen, die wir in den weiteren"
1510 [153]"lektionen behandeln werden."
1520 [153]"geben sie jetzt wieder ihr geraet ein."
1530 a$ [178] "" : [133]"dwait oder fwait"; a$
1540 [139] a$ [178] "f" [167] f[178]8 : [137] 1600
1545 [139] a$ [178] "z" [167] 1310
1550 [139] a$ [178] "d" [167] f[178]1 : [137] 1600
1555 [139] a$ [178] "" [167] [128]
1560 [137] 1530
1570 [143]*******************************
1580 [143]*---------- lade routine -----*
1590 [143]*******************************
1600 [151] 2,f : [151] 46,8 : [151] 45,3 : [151] 2050 ,0: [147] "lektion 8" ,[194](2)